<!--
闭包有三个特性：
1.函数嵌套函数
2.函数内部可以引用外部的参数和变量
3.参数和变量不会被垃圾回收机制回收
闭包是指有权访问另一个函数作用域中的变量的函数，创建闭包的最常见的方式就是在一个函数内创建另一个函数，通过另一个函数访问这个函数的局部变量。
使用闭包有一个优点，也是它的缺点，就是可以把局部变量驻留在内存中，可以避免使用全局变量。全局变量在每个模块都可调用，这势必将是灾难性的。
-->
<html>
    <head>
        <title>Closure</title>
        <script>
            function f1() {
                var n = 999;

                nAdd = function() {
                    n++;
                }

                var f2 = function() {
                    return n;
                }

                return f2;
            }

            var result = f1();
            console.log(result());
            nAdd();
            console.log(result());
        </script>
    </head>
    <body>
    </body>
</html>